Network based storage, or simply “network storage”, is a common approach to backing up data, making large amounts of data accessible to multiple users, and other purposes. In a network storage environment, a storage server (or storage system) makes data available to client (also referred to as “host”) systems by presenting or exporting to clients one or more logical data containers. There are various forms of network storage, including network attached storage (NAS) and storage area network (SAN). In a NAS context, a storage server services file-level requests from clients, whereas in a SAN context a storage server services block-level requests. Some storage servers are capable of servicing both file-level requests and block-level requests.
There are several trends that are relevant to network storage technology. The first is that the amount of data being stored within a typical enterprise is increasing from year to year. Second, there are now multiple mechanisms (or protocols) by which a user may wish to access data stored in network storage system. For example, consider a case where a user wishes to access a document stored at a particular location in a network storage system. The user may use a network file system (NFS) protocol to access the document over a local area network in a manner similar to how local storage is accessed. The user may also use an HTTP protocol to access a document over a wide area network such as an Internet network. Traditional storage systems use a different storage mechanism (e.g., a different file system) for presenting data over each such protocol. Accordingly, traditional network storage systems do not allow the same stored data to be accessed concurrently over multiple different protocols at the same level of a protocol stack.
In addition, network storage systems presently are constrained in the way they allow a user to store or navigate data. Consider, for example, a photo that is stored under a given path name, such as “/home/eng/myname/office.jpeg”. In a traditional network storage system, this path name maps to a specific storage volume and a specific file location (e.g., an inode number). Thus, a path name of a file (e.g., a photo) is closely tied to the file's storage location. In other words, the physical storage location of the file is determined by the path name of the file. Accordingly, in traditional storage systems, the path name of the file needs to be updated every time the physical storage location of the file changes (e.g., when the file is transferred to a different storage volume). This characteristic significantly limits the flexibility of the system.
Continuous efforts are being made to provide a flexible, expandable storage system, where data objects may be stored and replicated across storage volumes that may be managed by different storage system nodes.